#ifndef RGUI_TEXT_HPP
#define RGUI_TEXT_HPP

#include "vec2.hpp"
#include <string>

namespace rgui
{

class Text
{
public:
	// Dont make this enum as unsigned char, because this class has better memory alignment
	// with All members being 4 byte.
	static enum class AlignmentX
	{
		LEFT,
		CENTER,
		RIGHT
	};

	static enum class AlignmentY
	{
		TOP,
		CENTER,
		BOTTOM
	};
													Text(const std::wstring &str, const rgui::vec2f &position);

	const std::wstring&								getString();
	const rgui::vec2f&								getPosition();
	std::pair<Text::AlignmentX, Text::AlignmentY>	getAlignment();

	void											setString(const std::wstring &str);
	void											setPosition(const rgui::vec2f &position);
	void											setAlignment(Text::AlignmentX alignmentX, Text::AlignmentY alignmentY);
private:
	std::wstring mString;
	rgui::vec2f mPosition;
	Text::AlignmentX mAlignmentX;
	Text::AlignmentY mAlignmentY;
};

}

#endif